//小球
#include <iostream>
using namespace std;
int d,l;
void search(int root,int dep,int k){
    if (dep==d) {
        cout<<root;
        return ;
    }
    int k_next=(k+1)/2;
    if (k%2==0){  //为偶走右子树
        search(root*2+1,dep+1,k_next);
    }else {
        search(root*2,dep+1,k_next);
    }
}
int main(){
    
    cin>>d>>l;
    search(1,1,l);
}